/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Controle;

import Model.CidadeModel;
import Model.ClienteModel;
import java.util.ArrayList;
import java.util.List;
import java.util.Vector;
import javax.swing.table.DefaultTableModel;

/**
 *
 * @author Diego
 */
public class ClienteCtr {
     private ClienteModel objCliente;
    
    public ClienteCtr(){
        this. objCliente = new ClienteModel();
    }
    
    public int Salvar (ArrayList<String> Lista){
        CidadeCtr Cidade = new CidadeCtr();
        this.objCliente.setNomeCliente(Lista.get(1));
        this.objCliente.setCpfCliente(Lista.get(2));
        this.objCliente.setLogradouroCliente(Lista.get(3));
        this.objCliente.setBairroCliente(Lista.get(4));
        this.objCliente.setNumeroCliente(Integer.parseInt(Lista.get(5)));
        this.objCliente.setCidadeCliente(Cidade.RecuperaCidade(Integer.parseInt(Lista.get(6))));
       // this.objCliente.setCidadeCliente(Cidade.PegaCidade(Lista.get(6)));
        this.objCliente.setProximoCodigo();
        this.objCliente.Salvar();
        return this.objCliente.getCodCliente();
        
    }
    public void Atualizar (ArrayList<String> Lista){
        CidadeCtr Cidade = new CidadeCtr();
        this.objCliente.setCodCliente(Integer.parseInt(Lista.get(0)));
        this.objCliente.setNomeCliente(Lista.get(1));
        this.objCliente.setCpfCliente(Lista.get(2));
        this.objCliente.setLogradouroCliente(Lista.get(3));
        this.objCliente.setBairroCliente(Lista.get(4));
        this.objCliente.setNumeroCliente(Integer.parseInt(Lista.get(5)));
        this.objCliente.setCidadeCliente(Cidade.RecuperaCidade(Integer.parseInt(Lista.get(6))));
        //this.objCliente.setCidadeCliente(Cidade.PegaCidade(Lista.get(6)));
        this.objCliente.Atualizar();
        
    }
    
    public ArrayList<String> RecuperaObjeto(int iCod){
        this.objCliente.RecuperaObjeto(iCod);
        return ConverterObjemArray();     
    }
    
    public ArrayList<String> RecuperaObjetoNaveg(int op, int iCod){
        this.objCliente.RecuperaObjetoNaveg(op, iCod);
        return ConverterObjemArray();     
    }

    public void Excluir(int CodAtual) {
        this.objCliente.Excluir(CodAtual);
    }

    private ArrayList<String> ConverterObjemArray() {
        ArrayList<String> vetCampos = new ArrayList<String>();
        vetCampos.add(String.valueOf(this.objCliente.getCodCliente()));
        vetCampos.add(this.objCliente.getNomeCliente());
        vetCampos.add(this.objCliente.getCpfCliente());
        vetCampos.add(this.objCliente.getLogradouroCliente());    
        vetCampos.add(this.objCliente.getBairroCliente());
        vetCampos.add(String.valueOf(this.objCliente.getNumeroCliente()));
        vetCampos.add(this.objCliente.getCidadeCliente().getNomeCidade());
        vetCampos.add(String.valueOf(this.objCliente.getCidadeCliente().getCodCidade()));
        
        return vetCampos;   
    }

    public ClienteModel RecuperaCliente(int parseInt) {
       this.objCliente.RecuperaObjeto(parseInt);
       this.objCliente.getCodCliente();
       this.objCliente.getNomeCliente();
       this.objCliente.getCpfCliente();
       this.objCliente.getLogradouroCliente();
       this.objCliente.getBairroCliente();
       this.objCliente.getNumeroCliente();
       this.objCliente.getCidadeCliente();
       
       return objCliente;
    }
    public DefaultTableModel PesquisaObjeto(ArrayList<String> Parametros, DefaultTableModel objTabela) {
        String Campo = Parametros.get(0);
        String Valor = Parametros.get(1);
        boolean EmQualquerParte= Parametros.get(2).equals("S");
      
        
        ArrayList<ClienteModel> Clientes = this.objCliente.RecuperaObjetos(Campo, Valor, EmQualquerParte);
        
        Vector<String> vetVetor;
        ClienteModel objClienteBuffer;
        for(int i=0;i<Clientes.size();i++ ){
            vetVetor = new Vector<String>();
            objClienteBuffer = Clientes.get(i);
            
            vetVetor.addElement(String.valueOf(objClienteBuffer.getCodCliente()));
            vetVetor.addElement(objClienteBuffer.getNomeCliente());
            vetVetor.addElement(objClienteBuffer.getCpfCliente());
            vetVetor.addElement(objClienteBuffer.getCidadeCliente().getNomeCidade());
            objTabela.addRow(vetVetor);
        }
        return objTabela;
    }

    
}
